package com.whfc.wxmp.api.mach.v1.service;

import com.whfc.common.result.ListData;
import com.whfc.common.result.PageData;
import com.whfc.mach.dto.AppMachDataStatDTO;
import com.whfc.mach.dto.MachDayDataDTO;
import com.whfc.mach.dto.report.AppMachReportDTO;

import java.util.Date;

/**
 * @author sun_guodong
 * @description 小程序设备报表
 * @date 2020-12-14
 */
public interface WxmpMachReportService {

    /**
     * 获取设备日报列表
     *
     * @param deptId
     * @param pageNum
     * @param pageSize
     * @return
     */
    PageData<AppMachReportDTO> dayReportDataList(Integer deptId, Integer pageNum, Integer pageSize);

    /**
     * 获取设备周报列表
     *
     * @param deptId
     * @param pageNum
     * @param pageSize
     * @return
     */
    PageData<AppMachReportDTO> getWeekReportDataList(Integer deptId, Integer pageNum, Integer pageSize);

    /**
     * 获取设备月报列表
     *
     * @param deptId
     * @param pageNum
     * @param pageSize
     * @return
     */
    PageData<AppMachReportDTO> getMonthReportDataList(Integer deptId, Integer pageNum, Integer pageSize);

    /**
     * 获取设备日报统计数据
     *
     * @param deptId
     * @param date
     * @return
     */
    AppMachDataStatDTO dayReportStat(Integer deptId, Date date);

    /**
     * 获取设备周报统计数据
     *
     * @param deptId
     * @param startDate
     * @param endDate
     * @return
     */
    AppMachDataStatDTO weekReportStat(Integer deptId, Date startDate, Date endDate);

    /**
     * 获取设备日报
     *
     * @param deptId
     * @param date
     * @return
     */
    ListData<MachDayDataDTO> dayReport(Integer deptId, Date date);

    /**
     * 获取设备周报
     *
     * @param deptId
     * @param startDate
     * @param endDate
     * @return
     */
    ListData<MachDayDataDTO> weekReport(Integer deptId, Date startDate, Date endDate);
}
